

/* ------------------------------------- */
/*
  Project:	86box
  Platform: HT5019-32k
  Author:   Donnie Liang
  Data:     2017.02.8
  Version:  V1.0
  FileName: TimeBase.c

  CopyRight reserved by  

*/
/* ------------------------------------- */

#include  <unistd.h>  //usleep()
#include  <string.h>
#include  "TimeBase.h"


uint16_t APP_TimerCnt[TIMER_QT]={0};	/* App定时计数器*/
void  TimerTick(void);					/* App定时时钟“倒计时时钟”*/


/* 
描述：
初始化定时器的8个计数器
*/
void TimeBase_Init(void)
{
	memset(APP_TimerCnt,0,sizeof(APP_TimerCnt) );   	
	//memset(APP_TimerCnt,0,TIMER_QT<<1 );   	
}



/*
描述：//------周期 1ms---------
调用倒计时时钟
*/
void APP_SysTick_ISR(void)
{	
  TimerTick( );

}



/*
描述：
配置倒计时开始标识，倒计时计数器，倒计时时间
*/
void SetTimer(uint8_t flag,uint8_t index,uint16_t delay)
{
	if(flag)
	{
		APP_TimerCnt[index]=delay;
	}
	else
	{
		APP_TimerCnt[index]=0;
	}
}


/*
描述：
获取指定倒计时计数器的状态，是否计数到点
*/
uint16_t GetTimer(uint8_t index)
{
  return  APP_TimerCnt[index];
}


/*
描述：//------周期 1ms---------
倒计时器
*/
void  TimerTick(void)
{
	uint8_t index;
  for(index=0;index<TIMER_QT;index++)
	{
		if(APP_TimerCnt[index])
		{
			APP_TimerCnt[index]--;	
		}
	}
}







#if   ( MCU_PLATFORM_OF_STM32_ENABLE  || MCU_PLATFORM_OF_GD32_ENABLE )


/*
描述：
普通毫秒延时
*/
void Delay_ms(uint16_t Counter)
{
	uint32_t i;
	for(; Counter !=0; Counter--)
	{
		i = 72000;
		while(i--);
	}
}



/*
描述：
普通微秒延时
*/
void Delay_us(uint8_t t)
{
  uint16_t i;
	
	 while(t)
	 {	t--;
		 for(i=0;i<72;i++);
	 }
}


#else

void Delay_ms(uint16_t ms_cnt)
{
unsigned int us_cnt;

    us_cnt = ms_cnt;
	
	usleep(us_cnt*1000);
	//sleep(5);

}


#endif